package com.example.workflow.mapper;

import com.example.workflow.dto.OperatorHistoryListDto.OperatorHistoryItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

@Mapper
public interface OrderLogMapper {
    /**
     * 获取操作人员处理的一级工单列表
     * @param operatorId 操作人员ID
     * @return 工单列表
     */
    List<Map<String, Object>> getFirstOperateOrders(@Param("operatorId") Integer operatorId);
    
    /**
     * 获取操作人员处理的二级工单列表
     * @param operatorId 操作人员ID
     * @return 工单列表
     */
    List<Map<String, Object>> getSecondOperateOrders(@Param("operatorId") Integer operatorId);
    
    /**
     * 统计操作人员处理的工单数量
     * @param operatorId 操作人员ID
     * @return 工单数量统计
     */
    Map<String, Object> countOperateOrders(@Param("operatorId") Integer operatorId);
    
    /**
     * 统计部门派发的工单数量
     * @param department 部门名称
     * @return 部门派发的工单数量
     */
    Integer countDepartmentDispatchedOrders(@Param("department") String department);
    
    /**
     * 获取操作人员所在部门
     * @param operatorId 操作人员ID
     * @return 部门名称
     */
    String getOperatorDepartment(@Param("operatorId") Integer operatorId);
    
    /**
     * 获取操作人员处理过的所有历史工单列表（包括一级和二级）
     * URL: /operator/list
     * 
     * @param operatorId 操作人员ID
     * @return 历史工单列表
     */
    List<OperatorHistoryItem> getOperatorHistoryList(@Param("operatorId") Integer operatorId);
}